home *** CD-ROM | disk | FTP | other *** search
/ C & C++ Multimedia Cyber Classroom / C and C++ Multimedia Cyber Classroom (Prentice Hall) (1998).iso / src / fig16_07.jar / Ch16 / Fig16_07 / Fig16_07.cpp
C/C++ Source or Header  |  1997-11-10  |  1KB  |  61 lines

  1. // Fig. 16.7: fig16_07.cpp
  2. // Using the bitwise AND, bitwise inclusive OR, bitwise
  3. // exclusive OR, and bitwise complement operators.
  4. #include <iostream.h>
  5. #include <iomanip.h>
  6.  
  7. void displayBits( unsigned );
  8.  
  9. int main()
  10. {
  11.    unsigned number1, number2, mask, setBits;
  12.  
  13.    number1 = 65535;
  14.    mask = 1;
  15.    cout << "The result of combining the following\n";
  16.    displayBits( number1 );
  17.    displayBits( mask );
  18.    cout << "using the bitwise AND operator & is\n";
  19.    displayBits( number1 & mask );
  20.  
  21.    number1 = 15;
  22.    setBits = 241;
  23.    cout << "\nThe result of combining the following\n";
  24.    displayBits( number1 );
  25.    displayBits( setBits );
  26.    cout << "using the bitwise inclusive OR operator | is\n";
  27.    displayBits( number1 | setBits );
  28.  
  29.    number1 = 139;
  30.    number2 = 199;
  31.    cout << "\nThe result of combining the following\n";
  32.    displayBits( number1 );
  33.    displayBits( number2 );
  34.    cout << "using the bitwise exclusive OR operator ^ is\n";
  35.    displayBits( number1 ^ number2 );
  36.  
  37.    number1 = 21845;
  38.    cout << "\nThe one's complement of\n";
  39.    displayBits( number1 );
  40.    cout << "is" << endl;
  41.    displayBits( ~number1 );
  42.  
  43.    return 0;
  44. }
  45.  
  46. void displayBits( unsigned value )
  47. {
  48.    unsigned c, displayMask = 1 << 15;
  49.  
  50.    cout << setw( 7 ) << value << " = ";
  51.  
  52.    for ( c = 1; c <= 16; c++ ) {
  53.       cout << ( value & displayMask ? '1' : '0' );
  54.       value <<= 1;
  55.  
  56.       if ( c % 8 == 0 )
  57.          cout << ' ';
  58.    }
  59.  
  60.    cout << endl;
  61. }